package cn.getech.data.development.service;

import cn.getech.data.development.entity.RealTimeTask;
import cn.getech.data.development.model.dto.RealTimeTaskSaveDto;
import cn.getech.data.development.model.vo.RealTimeTaskVO;
import cn.getech.data.intelligence.common.utils.R;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface RealTimeTaskService extends IService<RealTimeTask> {

    R saveOrUpdate(RealTimeTaskSaveDto dto);

    R lockOrUnlock(RealTimeTaskSaveDto dto);

    RealTimeTaskVO getByMenuId(Integer menuId);

    int updateByMenuId(RealTimeTask task);

    R run(Integer menuId) throws Exception;

    R reRun(Integer menuId) throws Exception;

    R cancel(Integer menuId) throws Exception;

    /**
     * 获取sql语句
     * @param menuId 任务id
     * @param op 1 返回运行配置sql文件内容  0 返回预览sql语句
     */
    String wrapFlinkSql(Integer menuId, Integer op);

    R pause(Integer menuId);

    String wrapCollectionTask(Integer menuId);

    void updateBatch(List<Integer> realTimeTaskIds, Integer assigneePerId);

    R checkSource(Integer menuId);

    R localRun(Integer menuId);
}
